/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.syndance.aplicativo.business;

import org.syndance.aplicativo.dao.DaoCurso;
import org.sysdance.aplicativo.modelo.Curso;

/**
 *
 * @author gocard
 */
public class BCurso {

    private static BCurso bCurso = null;

    public static BCurso getInstace() {
        if (bCurso == null) {
            bCurso = new BCurso();
        }
        return bCurso;
    }

    public void salva(Curso curso) throws Exception {

        try {

            validarCamposObrigatorios(curso);
            validarRegradeNegocio(curso);
            DaoCurso.getInstance().salva(curso);

        } catch (Exception e) {
            throw e;
        }
    }

    private void validarCamposObrigatorios(Curso curso) throws Exception {

        if (curso.getNome() == null || curso.getNome().trim().isEmpty()) {
            throw new Exception("Por favor, Campos em branco");
        } else if (Integer.toString(curso.getIdade()) == null || Integer.toString(curso.getIdade()).trim().equals((""))) {
            throw new Exception("Por favor, Campos em branco");
        }else if(Integer.toString(curso.getTempo()) == null || Integer.toString(curso.getTempo()).trim().equals("")){
             throw new Exception("Por favor, Campos em branco");
        }else if(Double.toString(curso.getValor()) == null || Double.toString(curso.getValor()).trim().equals("")){
             throw new Exception("Por favor, Campos em branco");
        }

    }

    private void validarRegradeNegocio(Curso curso) throws Exception {

        if (!(curso.getIdade() >= 3)) {
            throw new Exception("A idade mínima de ser igual ou superior a 3 anos.");
        }
        if (curso.getIdade() >= 120) {
            throw new Exception("A idade Tem que ser menor de 120 anos");
        }
        if (curso.getTempo() >= 12) {

            throw new Exception("Quantidade de meses inválido");
        }
        if (curso.getValor() <= 0) {

            throw new Exception("Valor do curso maior que R$ 0,00");
        }

    }

    private void verificarExistencia(Curso curso) throws Exception {

    }

}
